package com.example.houseman.entity;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;

import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * <p>
 *
 * </p>
 *
 * @author 龚梦
 * @since 2021-03-30
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class TCfTermination implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 商户ID
     */
    private Long businessId;

    /**
     * 部门ID
     */
    private Long deptId;

    /**
     * 部门编号
     */
    private String deptNo;

    /**
     * 解约协议编号
     */
    private String cfTerminationNo;

    /**
     * 外部协议编号（线下解约协议号）
     */
    private String outTerminationNo;

    /**
     * 出房合同ID
     */
    private Long cfContractId;

    /**
     * 出房合同编号
     */
    private String cfContractNo;

    /**
     * 楼盘ID
     */
    private Long premiseId;

    /**
     * 小区(使用楼盘名)
     */
    private String premiseName;

    /**
     * 房产编号
     */
    private String houseId;

    /**
     * 房产信息
     */
    private String houseName;

    /**
     * 房源ID
     */
    private String roomId;

    /**
     * 房源编号
     */
    private String roomCode;

    /**
     * 房源名称
     */
    private String roomName;

    /**
     * 租客ID
     */
    private Long tenantId;

    /**
     * 租客姓名
     */
    private String tenantName;

    /**
     * 租客联系方式
     */
    private String tenantPhone;

    /**
     * 解约类型（1:合同到期 2：租客提前解约 3：我方退租解约，4：其他）
     */
    private String terminationType;

    /**
     * 解约类型其他（解约类型为其它的时候）
     */
    private String terminationOtherType;

    /**
     * 物业交割日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date wyjgDate;

    /**
     * 解约日期（协议签订日期，暂时同录入日期一样）
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date terminationDate;

    /**
     * 合同实际截止日（预留字段，暂时用解约日期）
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date realTerminationDate;

    /**
     * 审核日期（目前无审核，暂时用录入日期）
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date auditDate;

    /**
     * 结算合计(应退)， 为负数的时候是应收
     */
    private BigDecimal finalStatement;

    /**
     * 录入人ID
     */
    private Long inputUserId;

    /**
     * 录入人姓名
     */
    private String inputUserName;

    /**
     * 录入日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date inputDate;

    /**
     * 备注
     */
    private String remark;

    /**
     * 预留字段1
     */
    private BigDecimal reserve1;

    /**
     * 预留字段2
     */
    private Integer reserve2;

    /**
     * 预留字段3
     */
    private String reserve3;

    /**
     * 预留字段4
     */
    private String reserve4;

    /**
     * 预留字段5
     */
    private String reserve5;

    /**
     * 删除标识：0:未删除，1：删除
     */
    private Boolean delFlg;

    /**
     * 创建用户ID
     */
    private Long createUserid;

    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createTime;

    /**
     * 更新用户ID
     */
    private Long updateUserid;

    /**
     * 更新时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date updateTime;

    @TableField(exist = false)
    private String t1;
    @TableField(exist = false)
    private String t2;

}
